[t:/]$ 지식_

아파치 SetEnv 모듈과 커스텀 로그

2014/11/11

SetEnvIfNoCase Request_URI "/hihi" hi_module_log=1

접속 URI가 /hihi 면 hi_module_log=1 로 설정한다.

mod rewrite와도 긴밀한 관계가 있다. 예컨데, 특정 URL을 지정한 URL로 리디렉션 시키는 것과 함께, 로그는 기록하지 않도록 한다. RewriteEngine On RewriteCond %{REQUEST_URI} ^/foo/bar RewriteRule ^/foo/bar/(.*)$ /foobar?page=$1 아래는 gif 파일에 대한 로그를 나눠 남긴다.

SetEnvIf Request_URI .gif$ gif-image CustomLog gif-requests.log common env=gif-image CustomLog nongif-requests.log common env=!gif-image

URL qqq로 들어오면 qqq 변수를 셋팅하고 로그를 따로 뽑는다.

SetEnvIf Request_URI "/qqq$" qqq=y

CustomLog "|/app/apache/bin/rotatelogs /app/log/apache/TADdelivery1.request.%Y%m%d%H%M 60 +540" req_log env=qqq

이때 중요한 설정!!

LogFormat "%{REQ_LOG}n" req_log

%n은 아파치 모듈 request_rec->notes에 기록된 내용 중, key가 REQ_LOG인 놈만 골라서 뽑는다. 즉, 액세스 로그이지만 커스텀한 내용을 담을 수 있다. 단, log는 줄바꿈이 없는 한 줄 log이다.









[t:/] is not "technology - root". dawnsea, rss